# 获取database解析数据
from nacos_client import client
import time

# 解析Properties配置文件（Nacos）
# 初始化


def init(data_id, group):
    # 换行符进行分割，存入列表中
    config_list = client.get_config(data_id, group).split("\n")

    properties = {}
    for config_item in config_list:
        # 过滤有用的键值对
        print("config_item："+config_item)
        if config_item.find('=') > 0:
            strs = config_item.replace('\n', '').split('=')
            properties[strs[0]] = strs[1]


# 服务id（键）
data_id = "mysql_config"

# 分组名称，默认为：DEFAULT_GROUP
group = "DEFAULT_GROUP"

# 初始化解析
init(data_id, group)

# Nacos数据变动时触发


def nacos_data_change_callback(config):
    config_list = config['content'].split("\n")

    properties = {}
    for config_item in config_list:
        # 过滤有用部分
        if config_item.find('=') > 0:
            strs = config_item.replace('\n', '').split('=')
            properties[strs[0]] = strs[1]


# 监听Nacos数据变动
def add_nacos_listener(data_id, group):
    client.add_config_watcher(
        data_id=data_id, group=group, cb=nacos_data_change_callback)


# 添加监听事件
while True:
    try:
        add_nacos_listener(data_id, group)
        time.sleep(30)
    except Exception as e:
        print(f"Error: {e}")
        time.sleep(5)  # 在尝试重新发送心跳之前稍作延迟
